﻿using DexComanda.Models;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Sql;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace DexComanda
{
    public partial class frmConfiguracoes : Form
    {
        public Conexao Con;
        int codigo;

        public frmConfiguracoes()
        {
           
            string serverName = Environment.MachineName;
            InitializeComponent();

            this.txtServidor.Text = serverName;
            this.txtBanco.Text = "DBExpert";
        }



        private void ConectarBanco(object sender, EventArgs e)
        {
           
        }

        private void frmConfiguracoes_Load(object sender, EventArgs e)
        {
            
            Con = new Conexao();

            if (Con.getConnectionString() != null)
            {
                Empresa empresa = AutoConfig.getEmpresa();
                DataSet emp = Con.SelectAll("Empresa", "spObterEmpresa");
                if (emp.Tables["Empresa"].Rows.Count >= 0)
                {
                    this.btnSalvar.Text = "Alterar Cadastro";
                }

                if (empresa != null)
                {
                    txtNome.Text = empresa.Nome;
                    txtTelefone1.Text = empresa.Telefone;
                    txtTelefone2.Text = empresa.Telefone2;
                    txtCNPJ.Text = empresa.CNPJ;
                    txtCEP.Text = empresa.Cep.ToString();
                    txtEndereco.Text = empresa.Endereco;
                    txtCidade.Text = empresa.Cidade;
                    txtEstado.Text = empresa.UF;
                    txtBairro.Text = empresa.Bairro;
                    txtNumero.Text = empresa.Numero.ToString();
                    txtPontoReferencia.Text = empresa.PontoReferencia;
                    txtContato.Text = empresa.Contato;
                    txtEmail.Text = empresa.Email;
                    txtServidor.Text = empresa.Servidor;
                    txtBanco.Text = empresa.Banco;
                    txtVersaoBanco.Text = empresa.VersaoBanco;

                    if (empresa.TipoEmpresa == 1)
                    {
                        checkDelivery.Checked = true;
                    }

                    if (empresa.TipoEmpresa == 2)
                    {
                        checkVendaDireta.Checked = true;
                    }

                    if (empresa.TipoEmpresa == 3)
                    {
                        checkPrestacaoServico.Checked = true;
                    }
                }

            }
        }

        private void panel3_Paint(object sender, PaintEventArgs e)
        {

        }

        private void txtCEP_KeyPress(object sender, KeyPressEventArgs e)
        {
           
            if (e.KeyChar == 13)
            {
                //List<String> list = new List<String>();
                if (this.txtCEP.Text.Equals(""))
                {
                    MessageBox.Show("Informe o Cep.");
                }
                else
                {
                    int cep = int.Parse(this.txtCEP.Text);
                    DataSet endereco = Con.SelectEnderecoPorCep("base_cep", "spObterEnderecoPorCep", cep);

                    if (endereco.Tables["base_cep"].Rows.Count > 0)
                    {

                        DataRow dRow = endereco.Tables["base_cep"].Rows[0];

                        this.txtEndereco.Text = dRow.ItemArray.GetValue(0).ToString();
                        this.txtBairro.Text = dRow.ItemArray.GetValue(1).ToString();
                        this.txtCidade.Text = dRow.ItemArray.GetValue(2).ToString();
                        this.txtEstado.Text = dRow.ItemArray.GetValue(3).ToString();
                    }
                    else
                    {
                        MessageBox.Show("Cep não cadastrado");

                        this.txtEndereco.Focus();
                    }
                }
            }
        }

        private void btnConectarAoBanco_ChangeUICues(object sender, UICuesEventArgs e)
        {

        }

        private void btnConectarAoBanco_Click(object sender, EventArgs e)
        {

            var servidor = this.txtServidor.Text;
            var banco = this.txtBanco.Text;
            var usuario = this.txtUsuarioBanco.Text;
            var senha = this.txtSenhaBanco.Text;

            Conexao con = new Conexao();
            con.OpenConection(this.cbxPasswordRequired.Checked, servidor, banco, usuario, senha);
        }

        private void button1_click(object sender, EventArgs e)
        {
           

        }

        private void SalvarEmpresa(object sender, EventArgs e)
        {
            if (btnSalvar.Text == "Salvar")
            {
                if ((txtBanco.Text == "") || (txtServidor.Text == ""))
                {
                    MessageBox.Show("Dados Inválidos Preencha antes de salvar");
                    txtServidor.Focus();
                }

                Models.Empresa Empresa = new Models.Empresa()
                {
                    Nome = txtNome.Text,
                    CNPJ = txtCNPJ.Text,
                    Telefone = txtTelefone1.Text,
                    Telefone2 = txtTelefone2.Text,
                    Endereco = txtEndereco.Text,
                    Cep = int.Parse(txtCEP.Text),
                    Cidade = txtCidade.Text,
                    Numero = int.Parse(txtNumero.Text),
                    Bairro = txtBairro.Text,
                    UF = txtEstado.Text,
                    PontoReferencia = txtPontoReferencia.Text,
                    Contato = txtContato.Text,
                    Email = txtEmail.Text,
                    Banco = txtBanco.Text,
                    Servidor = txtServidor.Text,
                    VersaoBanco = txtVersaoBanco.Text
                };
                if (checkDelivery.Checked == true)
                {
                    Empresa.TipoEmpresa = 1;
                }
                if (checkVendaDireta.Checked == true)
                {
                    Empresa.TipoEmpresa = 2;
                }
                if (checkPrestacaoServico.Checked == true)
                {
                    Empresa.TipoEmpresa = 3;
                }
                Con.Insert("spAdicionaEmpresa", Empresa);
                MessageBox.Show("Empresa Cadastrada");
                Application.Restart();
            }
            else
            {
                //Con.Update("spAlterarEmpresa",);
            }
        } 
        private void ValidarCNPJ(object sender, KeyPressEventArgs e)
        {
            string Valor = txtCNPJ.Text;
            if (e.KeyChar == 13)
            {
                if (Models.ValidarCNPJ.IsCnpj(Valor))
                {
                    txtContato.Focus();
                }
                else
                {
                    MessageBox.Show("CNPJ INCORRETO");
                }

            }
        }

        private void cbxPasswordRequired_CheckedChanged(object sender, EventArgs e)
        {
            if (cbxPasswordRequired.Checked == false)
            {
                lblUsuarioBanco.Visible = false;
                txtUsuarioBanco.Visible = false;

                lblSenhaBanco.Visible = false;
                txtSenhaBanco.Visible = false;   
            }
            else {
                lblUsuarioBanco.Visible = true;
                txtUsuarioBanco.Visible = true;

                lblSenhaBanco.Visible = true;
                txtSenhaBanco.Visible = true;
            }
        }

        private void btnConectarMysql_Click(object sender, EventArgs e)
        {

            var servidorMysql = this.txtServidorMySql.Text;
            var bancoMysql = this.txtBancoMysql.Text;
            var usuarioMysql = this.txtUserMysql.Text;
            var senhaMysql = this.txtSenhaMysql.Text;

            criarConexaoMysql conn = new criarConexaoMysql();
            bool stringMysql = conn.salvarDadosDoBanco(servidorMysql, bancoMysql, usuarioMysql, senhaMysql);

            if (stringMysql==true)
            {
               
            }
            else
            {
                MessageBox.Show("Erro ao conectar ao banco de dados");
            }
        
        }
    }
}
